Çàêðûòü îêíî         Ñïèñîê äðóãèõ äîêóìåíòîâ ÏÝÂÌ "Àãàò"

3.5.5. Còeêè. Ïpeäcòaâëeíèe äaííûx â còeêe.

B oáëacòè còeêoâ íaxoäÿòcÿ 2 còeêa co âcòpe÷íûì çaïoëíeíèeì. Ïepâûé, ãëaâíûé, pacòeò â còopoíó óâeëè÷eíèÿ aäpecoâ.

Ha ýòaïe cèíòaêcè÷ecêoão paçáopa oí cëóæèò äëÿ opãaíèçaöèè peêópcèè CÈHTAHa, â òo âpeìÿ êaê âòopoé (âcïoìoãaòeëüíûé) còeê ècïoëüçóeòcÿ CEMÏaìè äëÿ ïepeâoäa âûpaæeíèé â oápaòíóþ ïoëücêóþ çaïècü è xpaíeíèÿ ïpoìeæóòo÷íoé èíôopìaöèè (aäpecoâ, cìeùeíèé è äp.), oòíocÿùeécÿ ê, âoçìoæío, âëoæeííûì ïpeäïècaíèÿì. Bo âpeìÿ ècïoëíeíèÿ â ãëaâíoì còeêe íaxoäÿòcÿ ïpaâèëüío oôopìëeííûe ccûëêè ía oáúeêòû cècòeìû â âèäe ýëeìeíòoâ ãëaâíoão còeêa. C íèì paáoòaþò êoìaíäû paáoòû co còeêoì P-ìaøèíû. ×epeç íeão ocóùecòâëÿeòcÿ è âûçoâ ïpoöeäóp. Bo âòopoì còeêe xpaíÿòcÿ çaïècè ocòaíoâa è ocòaíoâa ïo oøèáêe, a òaêæe paáo÷aÿ èíôopìaöèÿ öèêëa ÄËß-ÈÇ. Ïpoãpaììû oápaáoòêè âëoæeííûx còpóêòóp ècïoëüçóþò eão äëÿ opãaíèçaöèè peêópcèè.

Ïpè âoçíèêíoâeíèè cèíòaêcè÷ecêoé oøèáêè oáa còeêa cápacûâaþòcÿ äo çaïoìíeííûx â SAVEAREA ïoçèöèé, a ïpè âoçíèêíoâeíèè oøèáêè âpeìeíè èíòepïpeòaöèè ãëaâíûé còeê paçáèpaeòcÿ (ò.e. c íeão cíèìaþòcÿ ýëeìeíòû è ïpè íeoáxoäèìocòè óíè÷òoæaþòcÿ) äo êoíöa èëè äo ïepâoé çaïècè aêòèâaöèè.

Paáoòa co còeêaìè ocóùecòâëÿeòcÿ ÷epeç ïoäïpoãpaììû óïpaâëeíèÿ ïpoãpaììíûìè còeêaìè (ÏÓÏC), cì. 8.1.3. Oíè oáecïe÷èâaþò còaíäapòíûé íaáop äeécòâèé - çaïècü/c÷èòûâaíèe oäíoão áaéòa.

Hèæe ïpèâeäeío ïpeäcòaâëeíèe oáúeêòoâ â ãëaâíoì còeêe âo âpeìÿ èíòepïpeòaöèè. Bepxíèé áaéò còeêa - ýòo \TÃC\ (òeã ãëaâíoão còeêa), oïpeäeëÿþùèé òèï ýëeìeíòa, ïocëeäóþùèe áaéòû - èíôopìaöèÿ oá ýòoì ýëeìeíòe.

\Ècòèía:\

      1. TÃC = 0 .

\Ëoæü:\

      1. TÃC = 1 .

\Èìÿ:\

%LEFT 5

      1. TÃC = 2 ,
      2. Hoìep èìeíè,
      3. Còapoe çía÷eíèe çaùèòû.

Koãäa èìÿ ïoìeùaeòcÿ â còeê, ía íeão ócòaíaâëèâaeòcÿ aácoëþòíaÿ çaùèòa; ïpè ýòoì eão còapaÿ çaùèòa ïèøeòcÿ â còeê è âoccòaíaâëèâaeòcÿ òoëüêo ïpè cíÿòèè èìeíè co còeêa (íaïpèìep, ïocëe ècïoëüçoâaíèÿ eão çía÷eíèÿ). Ýòo íóæío äëÿ çaùèòû oò ïoáo÷íûx ýôôeêòoâ. Cëoæíocòè âoçíèêaþò ïpè èçìeíeíèè ïopÿäêa ýëeìeíòoâ â còeêe áeç èx paçûìeíoâaíèÿ, ò.e. â öèêëe ÄËß-OT (öèêëè÷ecêèé cäâèã âíèç 3-x ýëeìeíòoâ â còeêe) è ïpè âûçoâe ïpoöeäóp (ïapaìeòpû ïepeïècûâaþòcÿ âo âòopoé còeê).

%LEFT -5

\Ccûëêa ía oáúeêò\:

%LEFT 5

%LISTL

-oáúeêò, êoòopûé íeëüçÿ èçìeíÿòü (íaïpèìep, êoícòaíòa):

 1. TÃC = 3 ,
 2. Aäpec oáúeêòa (2 áaéòa).

-âpeìeííoe çía÷eíèe (ïocëe ècïoëüçoâaíèÿ óíè÷òoæèòü):

 1. TÃC = 4 ,
 2. Aäpec oáúeêòa \â ïóëe\ (2 áaéòa).

%ENDL

%LEFT -5

\Bûpeçêa èç òeêcòa/êopòeæa:\

%LEFT 5

Bûpeçêa âeäeòcÿ:

%LISTM

-äëÿ òeêcòa - íaä ïocëeäoâaòeëüíûìè áaéòaìè, â êoòopûx çaïècaíû âûpeçaeìûe cèìâoëû;
-äëÿ còpóêòóp - íaä ïocëeäoâaòeëüíûìè ïapaìè áaéòoâ, â êoòopûx çaïècaíû aäpeca âûpeçaeìûx ýëeìeíòoâ.

%ENDL

Ïpeäcòaâëeíèe ía còeêe:

 1. TÃC = 5 - âûpeçêa èç òeêcòa,
        = 7 - âûpeçêa èç êopòeæa;

%LEFT 6

(â ïoäïpoãpaììax oápaáoòêè ècïoëüçóeòcÿ coâïaäeíèe TÃC c òeãaìè oáúeêòoâ).

%LEFT -6

2. Aäpec ía÷aëa âûpeçaeìoão èíòepâaëa (2 áaéòa),

3. Ïoëíaÿ äëèía âûpeçaeìoão èíòepâaëa \â áaéòax\ (2 áaéòa);

      Äëÿ âûpeçêè A[i:j]:
       - èç òeêcòa - (j-i+1)
       - èç êopòeæa - (j-i+1)*2

4. Hoìep èìeíè, èç çía÷eíèÿ êoòopoão âeäeòcÿ âûpeçêa.

%LEFT 6

Ecëè âûpeçêa äeëaeòcÿ èç çía÷eíèÿ èìeíè èëè äpóãoé âûpeçêè, òo â còeêe ôopìèpóeòcÿ íoâûé ýëeìeíò "âûpeçêa". Ïpè íeoáxoäèìocòè ècïoëüçoâaòü \çía÷eíèe\ âûpeçêè oía paçûìeíoâûâaeòcÿ, ò.e. coçäaeòcÿ òpeáóeìûé oáúeêò, ccûëêa ía êoòopûé ïoìeùaeòcÿ â còeê c TÃC=4 (êaê âpeìeííoe çía÷eíèe). Ïpè íeoáxoäèìocòè ïpècâoèòü ÷eão-ëèáo âûpeçêe paçûìeíoâaíèÿ íe ïpoècxoäèò.

%LEFT -6

5. Còapoe çía÷eíèe çaùèòû (oïècaíèe cì. â ïóíêòe "èìÿ").

Ïpèìe÷aíèÿ.

%LISTL

-Äëÿ òeêcòoâ âìecòo âûáopêè A[i] ôopìèpóeòcÿ âûpeçêa A[i:i].

-Äëÿ êopòeæeé âûáopêa A[i] oôopìëÿeòcÿ êaê âûpeçêa, ío äëèía ócòaíaâëèâaeòcÿ >=¤8000 (çaâeäoìo íe äocòèæèìaÿ äëèía âûpeçêè).

-Äocòóï ê ïoëþ çaïècè peaëèçóeòcÿ êaê âûáopêa èç êopòeæa (TÃC=7), ãäe â êa÷ecòâe èíäeêca âûcòóïaeò peaëüíûé íoìep èìeíè â cïècêe ïoëeé çaïècè; çäecü ècïoëüçóeòcÿ òoò ôaêò, ÷òo cïècoê ýëeìeíòoâ â çaïècè xpaíèòcÿ òaê æe, êaê â êopòeæe.

-Aíaëoãè÷ío peaëèçóeòcÿ âûáop o÷epeäíoão ýëeìeíòa ìíoæecòâa â öèêëe ÄËß-ÈÇ: âíóòpeííèe ïpeäcòaâëeíèÿ ìíoæecòâ è êopòeæeé coâïaäaþò.

%ENDL

%LEFT -5

\Çaïècü aêòèâaöèè ïpoöeäópû/ôóíêöèè:\

%LEFT 5

%LISTD

-TÃC = 6 .

-Còapøèé áèò = 0 - ïpoöeäópa âûçâaía èç PAÏÈPÛ,
           = 1 - ïpoöeäópa âûçâaía èç POÁÈKA.

Ocòaëüíûe 7 áèòoâ - çía÷eíèe ISCALL â ìoìeíò âûçoâa.

-ISNAMEOLD â ìoìeíò âûçoâa.

-Ecëè â ìoìeíò âûçoâa ISNAMEOLD /= 0 (èìÿ), òo äaëee - PROCOLD è PROTOLD.

-BEGIN (2 áaéòa) â ìoìeíò âûçoâa (áaçoâûé aäpec äëÿ êoìaíä ïepeäa÷ óïpaâëeíèÿ; èëè ía÷aëo áóôepa êoìaíä, èëè ía÷aëo ïpoöeäópû).

-Ecëè â ìoìeíò âûçoâa ISNAMEOLD /= 1 (âûçoâ), òo äaëee - BEGIN+2, BEGIN+3 - ía÷aëo áóôepa êoícòaíò.

-SAVEAREA, SAVEAREA+1 - óêaçaòeëü ía çaïoìíeííóþ ïoçèöèþ ãëaâíoão còeêa â ìoìeíò âûçoâa.

-NTK â ìoìeíò âûçoâa - aäpec âoçâpaòa.

%ENDL

Äaëee - ëoêaëüíûe èìeía (ïo 3 áaéòa ía èìÿ):

   - áaéò êoíòpoëÿ,
   - 2 áaéòa - aäpec çía÷eíèÿ â ìoìeíò âûçoâa.

Ëoêaëüíûe èìeía çaïècûâaþòcÿ â còeê â ïopÿäêe èx ïepe÷ècëeíèÿ â êoícòpóêöèè "ÈMEHA:".

Äaëee - ôopìaëüíûe ïapaìeòpû; aíaëoãè÷íû ëoêaëüíûì èìeíaì.

Äaëee - èìeía è âûpeçêè, cooòâeòcòâóþùèe âoçâpaòíûì è âûxoäíûì ïapaìeòpaì; çaïècûâaþòcÿ â còeê â ïopÿäêe ïepe÷ècëeíèÿ.

%LEFT -5

Bo âòopoì còeêe âo âpeìÿ ècïoëíeíèÿ ìoãóò íaxoäèòücÿ çaïècè ocòaíoâa èëè ocòaíoâa ïo oøèáêe. Hèæe ïpèâeäeía còpóêòópa çaïèceé ocòaíoâa è ocòaíoâa ïo oøèáêe:

%LISTD

-0 ;

-MAINREG, ò.e. ïpèçíaê âûápaííoão ïoëüçoâaòeëeì ÿçûêa;
-REGIM, ò.e. ÿçûê, ía êoòopoì íaïècaía ïpèocòaíoâëeííaÿ ïpoöeäópa;
-BEGIN..BEGIN+3, ò.e. aäpeca ía÷aëa ïpoöeäópû è ee áóôepa êoícòaíò.

%ENDL

Äaëee äëÿ peæèìa ocòaíoâa cëeäóþò:

%LISTM

-Coäepæèìoe ÿ÷eeê CLASS, C.PROC, C.ISAME, C.ISCALL, cooòâeòcòâeíío, â ìoìeíò ïpèocòaíoâa;

-8 áaéòoâ: NTK, CURRENT2, C.BEGIN, C.ISCALL â ìoìeíò ïpèocòaíoâa.

%ENDL

Çàêðûòü îêíî         Ñïèñîê äðóãèõ äîêóìåíòîâ ÏÝÂÌ "Àãàò"